package com.coder.ipc.binder

import android.app.Service
import android.content.Intent
import android.os.Binder
import android.os.IBinder
import java.util.*

/**
 * 如果您的服务仅供本地应用使用，且无需跨进程工作，则您可以实现自有 Binder 类，让客户端通过该类直接访问服务中的公共方法。
 *
 * @author yuhushuan
 * @date 2020/12/13 22:20
 */
class LocalService : Service() {
    // 给到客户端的 Binder 对象
    private val binder = LocalBinder()

    // 随机数字生成器
    private val mGenerator = Random()

    val randomNumber: Int
        get() = mGenerator.nextInt(100)


    inner class LocalBinder : Binder() {
        fun getService(): LocalService = this@LocalService
    }

    override fun onBind(intent: Intent?): IBinder? {
        return binder
    }
}